The present invention relates to input circuit and output circuit for transferring data within a semiconductor integrated circuit at a much higher speed.
As the multimedia applications have been expanding in recent years, improvement of operating performance of a semiconductor device has become more and more pressing task to be fulfilled. That is to say, an ideal operating speed of a semiconductor device has been steeply rising, and desired power consumption of the device has been drastically falling. In particular, a system, like an image processor, which is intended to process a large quantity of data at a high speed, strongly needs a semiconductor device operative at an extremely high speed. Generally speaking, in order to operate a device at a high speed, data should be transferred within the device at a high speed, which in turn requires some high-speed data transfer technique. High-speed-transfer-related technology includes speeding up the operation of an input/output circuit and adopting a high-speed transfer standard for a data bus. Also, input circuits of various types have become popular lately. Examples of those circuits include: a differential input circuit for comparing a voltage of a signal received to a reference voltage and amplifying the voltage of the received signal based on the difference therebetween; and a differential input circuit for receiving differential (or complementary) signals and outputting a single signal.
If an output circuit for outputting a data signal has a push-pull configuration, however, it is very difficult to match its output impedance, or its output current, when each driver transistor outputs H-level data with its output impedance or current when each transistor outputs L-level data. In this specification, xe2x80x9cL-level dataxe2x80x9d and xe2x80x9cH-levelxe2x80x9d data means data with a voltage level defined as logically low (i.e., the voltage level is lower than a certain reference level) and data with a voltage level defined as logically high (i.e., the voltage level is higher than the reference level), respectively. Also, if an output circuit for outputting a data signal is a pull-up output circuit including a pull-up resistor connected to the output thereof, it is hard to equalize a current flowing through the resistor with that flowing through a transistor for outputting the data signal.
In view of the state of the art, the length of a transition interval from L to H level of a data signal is not equal to that of its transition interval from H to L level. Thus, an interval during which the voltage level of such a data signal received by a receiver is defined as logically high judging from the reference voltage is not equal in length to an interval during which that of the data signal is defined as logically low. If such a data signal is transferred and held at irregular intervals in response to a clock signal with regular pulses, then skewing is more likely to happen. As a result, the receiver might operate erroneously, thus interfering with the speedup of a system. The higher the intended speed of a system is, the more seriously such skewing is affecting. In general, the length of a data transition interval is on the orders of several hundreds picoseconds to several nanoseconds. Thus, if a high-speed operation should be performed responsive to a clock signal at a frequency of several hundreds megahertz (i.e., one cycle of the clock signal is several nanoseconds), then the data transition intervals account for as much as several tens percent of one cycle of the clock signal. Thus, skewing is very likely to happen in such a situation.
An object of the present invention is providing input and output circuits contributing to a high-speed operation by suppressing skewing, resulting from a difference in length between the transition interval of an input data signal from H to L level and its transition interval from L to H level.
In the input circuit of the present invention, to correct such a difference in length between these two types of transition intervals of a data signal received, a clock signal is delayed based on at least one of these two transition intervals of the data signal. And the received data signal is latched using at least one of these two types of delayed clock signals and/or the original clock signal.
Also, to correct such a difference in length between these two transition intervals of a data signal to be transmitted, the output circuit of the present invention is adapted to control the drivability of a driver thereof outputting the data signal.
Specifically, an input circuit according to the present invention includes: delay means for defining a delay time for at least one logical state of a data signal and thereby delaying the clock signal for the delay time defined; and a holding circuit for holding the data signal responsive to the delayed clock signal.
In one embodiment of the present invention, the delay means preferably defines the delay time such that an edge of the clock signal, on which the data signal is intended to be latched and which is included within a transition interval of the data signal, is delayed to a point in time after the transition interval of the data signal is over.
In this particular embodiment, the delay means may include: a comparator for comparing the edge of the clock signal, on which the data signal is intended to be latched, to at least one of leading and trailing edges of the data signal; and a delay circuit for defining the delay time based on a result of comparison performed by the comparator.
In an alternate embodiment, the delay means may include: a comparator for comparing the edge of the clock signal, on which the data signal is intended to be latched, to leading and trailing edges of the data signal; a first delay circuit for defining the delay time for a logically high state of the data signal based on a result of comparison, performed by the comparator, between one of the leading edges of the data signal and the edge of the clock signal; a second delay circuit for defining the delay time for a logically low state of the data signal based on a result of comparison, performed by the comparator, between one of the trailing edges of the data signal and the edge of the clock signal; and a selector for selecting the delay time defined by the first delay circuit when the data signal is in the logically high state or the delay time defined by the second delay circuit when the data signal is in the logically low state.
In another embodiment, the delay circuit may define the delay time based on the result of comparison performed by the comparator and a setup time for correctly latching the data signal.
An output circuit according to the present invention includes: a driver including a plurality of devices outputting a data signal, the total drivability of the devices being controllable; and a controller, responsive to a signal representing a transition interval length of the data signal, for increasing or decreasing the drivability of the driver.
In one embodiment of the present invention, the controller preferably receives the signal, representing the transition interval length of the data signal, from an input circuit to which the data signal is output from the output circuit.
The input circuit of the present invention can prevent erroneous latching. For example, suppose the transition interval of a data signal from H into L level is relatively long. In such a case, even though an edge of the original clock signal, on which the data signal is usually latched, is included within the transition interval, the original clock signal is delayed for a relatively long amount of time defined for the logically state of the data signal. Accordingly, an edge of the delayed clock signal, on which the data signal is actually latched, is located at a point in time after the transition of the data signal into the L level is over. As a result, the L-level data signal can be latched correctly with a lot more certainty.
The output circuit of the present invention can also prevent erroneous latching. For example, suppose the transition interval of a data signal from H into L level is relatively long. In such a case, even though an edge of the clock signal, on which the data signal is usually latched, is included within the transition interval, the transition interval can be shortened, because the drivability of the driver is increased. Thus, the edge of the clock signal, on which the data signal is actually latched, is located at a point in time after the shortened transition interval of the data signal into the L level is over. As a result, the L-level data signal can be latched correctly with a lot more certainty.